/**
 * 非对称之美
 *
 * 题目描述
 * 给出一个字符串，求最长非回文子字符串的长度
 *
 * 输入描述:
 * 在一行中给出一个字符串s,1≤∣s∣≤10^7
 *
 * 输出描述:
 * 一个整数
 */

import java.util.Scanner;

/**
 * 这里找规律就可以了, 我们只需要判断整个字符串是否是
 * 字符串时否是回文串, 要是不是就直接返回 n, 要是是的
 * 话, 我们也只需要删除第一个或者最后一个就不是回文串了
 * 但是有一种情况是特例的, 那就是全都是一个字符组成的字符串
 * 我们只要特殊处理一下就可以了
 * 时间复杂度 : O(n)
 * 空间复杂度 : O(1)
 */

public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);

        char[] nums = in.next().toCharArray();

        int n = nums.length;

        // 判断是否全是想通过的字符
        // 判断标志
        boolean tmp = false;
        for (int i = 1; i < n; i++) {
            if (nums[i] != nums[0]) {

                // 不是全都相同
                tmp = true;
                break;
            }
        }

        if (tmp) {

            // 不是同一个字符
            // 接下来判断整个字符串是否是回文串
            int left = 0, right = n - 1;

            // 判断是否是回文串
            while (left < right) {
                if (nums[left] != nums[right]) {
                    break;
                }
                left++;
                right--;
            }

            if (left < right) {

                // 不是
                System.out.println(n);
            } else {

                // 是
                System.out.println(n - 1);
            }
        } else {

            // 全是同一个字符, 直接返回 0
            System.out.println(0);
        }
    }
}